home *** CD-ROM | disk | FTP | other *** search
-
- #include <stdarg.h> /* variable argument macros */
- #include <stdio.h> /* for printf */
-
- int maxn(int n, ...); /* the function prototype for maxn */
-
- /*
- ** Main makes some calls to maxn, and prints the results. */
- */
- void main(void)
- {
- printf("MaxN tests:\n\n");
- printf(
- "maxn(2, 3, 5) = %d\n",
- maxn(2, 3, 5) );
- printf(
- "maxn(5, 3, 5, 7, 11, 13) = %d\n",
- maxn(5, 3, 5, 7, 11, 13) );
- printf(
- "maxn(3, 3, 5, 7, 11, 13) = %d\n",
- maxn(3, 3, 5, 7, 11, 13) );
- printf(
- "maxn(1, 9) = %d\n",
- maxn(1, 9) );
- }
-
- /*
- ** The maxn function returns the largest of n integer arguments.
- */
- int maxn(int n, ...)
- {
- int val, max_val;
- va_list argp; /* pointer to arguments */
-
- va_start(argp, n); /* points argp to arg after n */
-
- max_val = va_arg(argp, int); /* get first of n arguments */
- while (--n)
- {
- val = va_arg(argp, int); /* get subsequent arguments */
- if (val > max_val)
- max_val = val; /* max_val gets the largest */
- }
-
- va_end(argp); /* clean up */
-
- return max_val; / return value of the largest */
- }
-
-
-